package com.linkhub.oms.admin.modules.wms.domain.param;

import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "TransferOrderNoticeParam", description = "Transfer Order Notice Param")
public class TransferOrderNoticeParam implements Serializable {

    private Request request;

    @Data
    public static class Request {
        private AdjustmentOrder adjustmentOrder;
        private OrderLines orderLines;
    }

    @Data
    public static class AdjustmentOrder {
        private String adjustmentOrderCode;
        private String adjustmentOrderId;
        private String adjustmentOrderType;
        private String warehouseCode;
        private String ownerCode;
        private String outBizCode;
        private String orderConfirmTime;
        private String updateCode;
        private String remark;
    }

    @Data
    public static class OrderLines {
        private List<OrderLine> orderLine;
    }

    @Data
    public static class OrderLine {
        private String itemCode;
        private String itemId;
        private String itemName;
        private String planQty;
        private String actualQty;
        private String lineNo;
        private String serialNo;
        private Source source;
        private Target target;
    }

    @Data
    public static class Source {
        private String inventoryType;
        private String virtualWarehouse;
        private String productDate;
        private String expireDate;
        private String batchCode;
        private String stockinDate;
        private String userDefined1;
        private String userDefined2;
        private String userDefined3;
        private String userDefined4;
    }

    @Data
    public static class Target {
        private String inventoryType;
        private String virtualWarehouse;
        private String productDate;
        private String expireDate;
        private String batchCode;
        private String stockinDate;
        private String userDefined1;
        private String userDefined2;
        private String userDefined3;
        private String userDefined4;
    }
}
